package interceptor;

import org.apache.flume.Context;
import org.apache.flume.Event;
import org.apache.flume.interceptor.Interceptor;

import java.nio.charset.StandardCharsets;
import java.util.Iterator;
import java.util.List;

public class ETLInterceptor implements Interceptor {
    //过滤器初始化操作
    @Override
    public void initialize() {

    }

    @Override
    public Event intercept(Event event) {
        return null;
    }


    //拦截事件列表，遍历整个列表，
    // 如果intercept(Event event)返回null（即，事件被丢弃），
    // 那么这个事件会从列表中移除。最后，该方法返回整个列表。
    @Override
    public List<Event> intercept(List<Event> list) {
        Iterator<Event> iterator = list.iterator();
        while (iterator.hasNext()){
            Event next = iterator.next();
            if(intercept(next)==null){
                iterator.remove();
            }
        }
        return list;
    }
    //使用这个类进行构建过滤器
    public static class Builder implements Interceptor.Builder{

        @Override
        public Interceptor build() {
            return new ETLInterceptor();
        }

        @Override
        public void configure(Context context) {

        }
    }

    @Override
    public void close() {

    }
}
